/**
 * jims
 */
package com.jims.master.modules.finance.dao;

import com.jims.master.common.persistence.CrudDao;
import com.jims.master.common.persistence.annotation.MyBatisDao;
import com.jims.master.common.web.impl.BaseDto;
import com.jims.master.modules.finance.entity.InpAcctMaster;
import com.jims.master.modules.finance.entity.InpAcctMoney;
import com.jims.master.modules.finance.entity.InpPaymentsMoney;
import com.jims.master.modules.finance.entity.PatPrepayment;
import org.apache.ibatis.annotations.Param;

import java.util.List;
/**
 * 病人预交金记录DAO接口
 * @author 赵宁
 * @version 2017-03-28
 */
@MyBatisDao
public interface PatPrepaymentDao extends CrudDao<PatPrepayment> {
    /**
     * 根据住院号查询 预交金记录
     * @param patPrepayment
     * @return List<PatPrepayment>
     * @author 赵宁
     */
    public PatPrepayment findPayments(PatPrepayment patPrepayment);

    /**
     * 结算打印计算预交金金额
     * @param patPrepayment
     * @return
     * @author 赵宁
     */
    public PatPrepayment printPayments(PatPrepayment patPrepayment);

    /**
     * 预交金结账查询预交金
     * @param inpAcctMaster
     * @return InpAcctMaster
     * @author 赵宁
     */
    public InpAcctMaster getPrepayments(InpAcctMaster inpAcctMaster);

    /**
     * 预交金结账--查询预交金支付类型
     * @param inpAcctMaster
     * @return   List<InpAcctMoney>
     * @author 赵宁
     */
    public List<InpAcctMoney> getPayWay(InpAcctMaster inpAcctMaster);

    /**
     * 预交金结账--查询预交金信息
     * @param inpAcctMaster
     * @return  List<PatPrepayment>
     * @author 赵宁
     */
    public List<PatPrepayment> getPaymentsByAcct(InpAcctMaster inpAcctMaster);

    /**
     * 更新结账号
     * @param inpAcctMaster
     * @author 赵宁
     */
    public void updatePrepayment(InpAcctMaster inpAcctMaster);

    /**
     * 预交金余额查询
     * @param wardCode
     * @return List<BaseDto>
     * @author 赵宁
     */
    public List<BaseDto> getPaymentBlance(@Param("wardCode")String wardCode,@Param("name")String name,@Param("orgId")String orgId);


    /**
     * 护理端催补预交金
     * @param patPrepayment
     * @return
     * @author CTQ
     */
    public List<BaseDto> searchWaitPrePayment(PatPrepayment patPrepayment);

    /**
     * 获取预交金催单打印路径
     * @param patPrepayment
     * @return
     * @author CTQ
     */
    public List<BaseDto> reminderPrint(PatPrepayment patPrepayment);/**

     * 获取预交金打印路径
     * @param patPrepayment
     * @return
     * @author yangfuda
     */
    public BaseDto prepaidPaymentPrint(PatPrepayment patPrepayment);

    /**
     * 根据参数查询预交金信息
     * @param patPrepayment
     * @return
     * @author CTQ
     */
    public PatPrepayment findAmountByParam(PatPrepayment patPrepayment);

    /**
     * 查询病人未作废且未退款的预交金金额
     * @param patPrepayment
     * @return
     * @author CTQ
     */
    public PatPrepayment findAmount(PatPrepayment patPrepayment);



    /**
     * 预交金打印结账查询收费类型明细
     * @param inpAcctMaster
     * @return
     * @author 赵宁
     */
    public BaseDto printPrepayAcct(InpAcctMaster inpAcctMaster);

    /**
     * 预交金结账查询
     * @param inpAcctMaster
     * @return
     * @author 赵宁
     */
    public List<BaseDto> printGetPayWay(InpAcctMaster inpAcctMaster);

}